home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
326-350
/
disk_339
/
pcq
/
include
/
copper.i
< prev
next >
Wrap
Text File
|
1992-05-06
|
2KB
|
60 lines
{
Copper.i
This file contains definitions for the various Copper
structures.
}
Const
COPPER_MOVE = 0; { pseude opcode for move #XXXX,dir }
COPPER_WAIT = 1; { pseudo opcode for wait y,x }
CPRNXTBUF = 2; { continue processing with next buffer }
CPR_NT_LOF = $8000; { copper instruction only for short frames }
CPR_NT_SHT = $4000; { copper instruction only for long frames }
Type
CopIns = Record
OpCode : Short;
VWaitPos: Short;
VDest : Short; { Since PCQ doesn't have variant records, }
end; { this is the best we can do. }
CopInsPtr = ^CopIns;
{ structure of cprlist that points to list that hardware actually executes }
cprlist = Record
Next : ^cprlist;
start : Address; { start of copper list }
MaxCount: Short; { number of long instructions }
end;
cprlistPtr = ^cprlist;
CopList = Record
Next : ^CopList; { next block for this copper list }
_CopList: ^CopList; { system use }
_ViewPort : Address; { system use }
CopIns : CopInsPtr; { start of this block }
CopPtr : CopInsPtr; { intermediate ptr }
CopLStart : Address; { mrgcop fills this in for Long Frame}
CopSStart : Address; { mrgcop fills this in for Short Frame}
Count : Short; { intermediate counter }
MaxCount : Short; { max # of copins for this block }
DyOffset : Short; { offset this copper list vertical waits }
end;
CopListPtr = ^CopList;
UCopList = Record
Next : ^UCopList;
FirstCopList : CopListPtr; { head node of this copper list }
CopList : CopListPtr; { node in use }
end;
UCopListPtr = ^UCopList;
copinit = record
diagstrt : Array [0..3] of Short; { copper list for first bitplane }
sprstrtup : Array [0..(2*8*2)+2+(2*2)+1] of Short;
sprstop : Array [0..1] of Short;
end;
CopInitPtr = ^copinit;